#!/bin/bash

# 交互式输入 Harbor 管理员的主机地址和密码
read -p "请输入 Harbor 主机地址 (例如 registry.example.com): " HARBOR_URL
read -sp "请输入 Harbor 管理员密码: " HARBOR_PASSWORD
echo

# Harbor 管理员用户名
HARBOR_USER="admin"

# 交互式输入项目名称列表，使用逗号分隔
read -p "请输入要创建的项目名称列表（用逗号分隔）: " PROJECTS_INPUT

# 将输入的项目名称字符串转换为数组
IFS=',' read -ra PROJECTS <<< "$PROJECTS_INPUT"

# 遍历项目名称数组并创建项目
for project in "${PROJECTS[@]}"; do
  # 去除项目名称前后的空格
  project=$(echo "$project" | xargs)
  echo "正在创建项目: $project"
  
  # 调用 Harbor API 创建项目
  response=$(curl -s -o /dev/null -w "%{http_code}" -u "${HARBOR_USER}:${HARBOR_PASSWORD}" \
    -X POST "http://${HARBOR_URL}/api/v2.0/projects" \
    -H "Content-Type: application/json" \
    -d '{
          "project_name": "'"${project}"'",
          "metadata": {
              "public": "true"
          }
        }')

  # 检查 HTTP 响应状态码
  if [[ $response -eq 201 ]]; then
    echo "项目 $project 创建成功！"
  elif [[ $response -eq 409 ]]; then
    echo "项目 $project 已存在，跳过。"
  else
    echo "项目 $project 创建失败，HTTP 状态码: $response"
  fi
done
